﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;

namespace Controleur
{
    class ModeTrait : ModeForme
    {

        /***********************/
        /**** Constructeurs ****/
        /***********************/

        /** 
         * ModeRectangle(System.Drawing.Color _couleur, int _epaisseur)
         * 
         * @brief Constructeur
         * @param System.Drawing.Color _couleur : la couleur des traits par défaut
         * @param int _epaisseur : l'épaisseur des traits par défaut
         * @return void
         */
        public  ModeTrait(System.Drawing.Color _couleur, int _epaisseur): base(_couleur, _epaisseur)
        {
        }

        /** 
         * ModeRectangle()
         * 
         * @brief Constructeur par défaut
         * @return void
         */
        public ModeTrait()
            : base()
        {
        }


        /***************************************/
        /** Actions spécifiques à chaque mode **/
        /***************************************/


        /**
         * ActionZoneDessin(Microsoft.Ink.Stroke _stroke)
         * 
         * @brief écriture sur la zone de dessin
         * @param Stroke _stroke : objet contenant de nombreuses informations (analogue à ensemble de points)
         * @return void
        */
        public override void ActionZoneDessin(Microsoft.Ink.Stroke _stroke)
        {
          Array points= _stroke.GetPoints();

          System.Drawing.Point p1 = (System.Drawing.Point)points.GetValue(0);

          System.Drawing.Point p2 = (System.Drawing.Point)points.GetValue(points.Length - 1);

            Modele.Trait trait = new Modele.Trait(p1,p2);
            addInk(trait, _stroke.DrawingAttributes);
        }

        /**
        * ActionEffacer(Microsoft.Ink.Strokes _strokes)
        * 
        * @brief tracer un trait sur la zone de dessin avec la "gomme"
        * @param Strokes _strokes : objet contenant de nombreuses informations (analogue à ensemble de stroke)
        * @return void
        */
        public override void ActionEffacer(Microsoft.Ink.Strokes _strokes) { }

        /**
        * ActionDoubleClic(Microsoft.Ink.Strokes _strokes)
        * 
        * @brief Action de double clic
        * @param Strokes _strokes : objet contenant de nombreuses informations (analogue à ensemble de stroke)
        * @return void
        */
        public override void ActionDoubleClic(Microsoft.Ink.Strokes _strokes) { }



    }
}
